package com.paydemo.pay.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.paydemo.pay.entity.PayOrder;
import com.paydemo.pay.util.Result;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.Map;

/**
 * 支付订单服务接口
 */
public interface PayOrderService extends IService<PayOrder> {

    /**
     * 创建支付宝扫码支付订单
     * @param amount 支付金额
     * @return 包含二维码内容的结果
     */
    Result<Map<String, Object>> createAlipayQrCodeOrder(BigDecimal amount);

    /**
     * 处理支付宝支付结果通知
     * @param request 请求对象
     * @return 处理结果
     */
    String handleAlipayNotify(HttpServletRequest request);

    /**
     * 处理支付宝同步返回
     * @param request 请求对象
     * @return 处理结果
     */
    Result<Map<String, Object>> handleAlipayReturn(HttpServletRequest request);

    /**
     * 根据订单号获取订单
     * @param orderNo 订单号
     * @return 订单对象
     */
    PayOrder getByOrderNo(String orderNo);
    
    /**
     * 检查订单支付超时
     */
    void checkPaymentTimeout();
} 